#include "browser.h"


void
compar (msg * popo)
{
  if (!strcmp (popo->argu[0], "close"))
    local_close_base ();

  else if (!strcmp (popo->argu[0], "ls"))
    local_print_base ();

  else if (!strcmp (popo->argu[0], "exit"))
    local_quit (popo);

  else if (!strcmp (popo->argu[0], "pwd"));
  //local_display_path();

  else if (!strcmp (popo->argu[0], "about"))
    local_about ();

  else if (!strcmp (popo->argu[0], "help"))
    local_help ();

  else if (!strcmp (popo->argu[0], "printall"))
    local_print_all ();

  else
    {
      if (popo->cc < 2 || !popo->argu[1][0])
	return;

      if (!strcmp (popo->argu[0], "open"))
	local_open_base (popo);

      else if (!strcmp (popo->argu[0], "init"))
	local_init_bdd (popo);

      else if (!strcmp (popo->argu[0], "cd"))
	local_browse_base (popo);

      else if (!strcmp (popo->argu[0], "rm.row"))
	local_rm_row (popo);

      else if (!strcmp (popo->argu[0], "add.row"))
	local_add_row (popo);

      else if (!strcmp (popo->argu[0], "rm.subbase"))
	local_rm_subbase (popo);

      else if (!strcmp (popo->argu[0], "add.subbase"))
	local_add_subbase (popo);

      else if (!strcmp (popo->argu[0], "rename.row"))
	local_rename_row (popo);

      else if (!strcmp (popo->argu[0], "rename.subbase"))
	local_rename_subbase (popo);

      else if (!strcmp (popo->argu[0], "update"))
	local_update_row (popo);

      else
	puts ("Commande inconnue");
    }
}

void
prompt_it (void)
{
  char buffer[1025];
  msg popo;

  td_init (".");

  while (1)
    {
      printf ("#> ");
      fgets (buffer, 1024, stdin);
      clean_txt (buffer);
      parse_argu (&popo, buffer);
      if (popo.cc)
	compar (&popo);
      free_msg (&popo);
    }
}


int
main (void)
{
  sid = 0;
  prompt_it ();
  return 0;
}
